﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using ObjectManager;

namespace QuanLyDiem
{
    public partial class frmBoMon_ThayDoi : Form
    {
        private static frmBoMon_ThayDoi frm = null;
        private BoMon boMon = new BoMon();

        private frmBoMon_ThayDoi()
        {
            InitializeComponent();
            txtMa.Enabled = false;
        }

        public static frmBoMon_ThayDoi Create()
        {
            return Create(false);
        }

        public static frmBoMon_ThayDoi Create(bool child)
        {
            if (frm == null)
            {
                frm = new frmBoMon_ThayDoi();
            }
            if (child)
            {
                frm.ControlBox = false;
                frm.MinimizeBox = false;
                frm.MaximizeBox = false;
                frm.WindowState = FormWindowState.Maximized;
            }
            frm.RefreshData();
            return frm;
        }

        private void frmBoMon_ThayDoi_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (frm != null)
            {
                frm.Dispose();
                frm = null;
            }
        }

        private void RefreshData()
        {
            dgvBoMon.DataSource = boMon.ListAll();
        }

        private void cmniChiTiet_Click(object sender, EventArgs e)
        {
            btnSua.PerformClick();
        }

        private void cmniXoa_Click(object sender, EventArgs e)
        {
            btnXoa.PerformClick();
        }

        private void dgvBoMon_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            btnSua.PerformClick();
        }

        private void btnXoa_Click(object sender, EventArgs e)
        {
            if (dgvBoMon.SelectedRows.Count > 0)
            {
                DialogResult dalrs = MessageBox.Show("Bạn có chắc chán muốn xóa " + dgvBoMon.SelectedRows.Count.ToString() + " bộ môn không?", "Thông báo", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
                if (dalrs == DialogResult.OK)
                {
                    int count = 0;
                    int length = dgvBoMon.SelectedRows.Count;
                    foreach (DataGridViewRow item in dgvBoMon.SelectedRows)
                    {
                        BoMon bomon = new BoMon();
                        bomon.ThongTin.Ten = item.Cells["cTen"].Value.ToString();
                        int check = bomon.Remove();
                        if (check > 0)
                        {
                            count++;
                            dgvBoMon.Rows.Remove(item);
                        }
                    }
                    if (count > 0)
                    {
                        MessageBox.Show("Đã xóa thành công " + count.ToString() + " bộ môn", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }
            }
            else
            {
                MessageBox.Show("Bạn phải chọn các bộ môn muốn xóa", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }

        private void btnSua_Click(object sender, EventArgs e)
        {
            if (dgvBoMon.SelectedRows.Count > 0)
            {
                BoMon bm = new BoMon();
                bm.ThongTin.Ma = int.Parse(dgvBoMon.SelectedRows[0].Cells["cMa"].Value.ToString());
                bm.ThongTin.Ten = dgvBoMon.SelectedRows[0].Cells["cTen"].Value.ToString();
                bm.ThongTin.KyHieu = dgvBoMon.SelectedRows[0].Cells["cKyHieu"].Value.ToString();

                frmBoMon_Sua frm = frmBoMon_Sua.Create(bm);
                frm.Owner = this;
                frm.UpdateBoMonSuccess += new UpdateBoMon(frm_UpdateBoMonSuccess);
                frm.ShowDialog();
            }
            else
            {
                MessageBox.Show("Bạn phải chọn 1 bộ môn để sửa", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }

        private void frm_UpdateBoMonSuccess(object sender, InfoUpdateBoMon e)
        {
            dgvBoMon.SelectedRows[0].Cells["cTen"].Value = e.BoMon.ThongTin.Ten;
            dgvBoMon.SelectedRows[0].Cells["cKyHieu"].Value = e.BoMon.ThongTin.KyHieu;
        }

        private void btnTimKiem_Click(object sender, EventArgs e)
        {
            if (rdMa.Checked)
            {
                txtMa.Text = txtMa.Text.Trim();
                dgvBoMon.DataSource = this.boMon.ListAll(txtMa.Text);
                if (dgvBoMon.Rows.Count <= 0)
                {
                    MessageBox.Show("Không tìm thấy", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    txtMa.Focus();
                }
            }
            else
            {
                txtTen.Text = txtTen.Text.Trim();
                txtKyHieu.Text = txtKyHieu.Text.Trim();
                dgvBoMon.DataSource = this.boMon.ListAll(txtTen.Text, txtKyHieu.Text);
                if (dgvBoMon.Rows.Count <= 0)
                {
                    MessageBox.Show("Không tìm thấy", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    txtTen.Focus();
                }
            }
        }

        private void rdNoMa_CheckedChanged(object sender, EventArgs e)
        {
            if (rdMa.Checked)
            {
                pnTimKiem.Enabled = false;
                txtMa.Enabled = true;
            }
            else
            {
                pnTimKiem.Enabled = true;
                txtMa.Enabled = false;
            }
        }

        private void label3_Click(object sender, EventArgs e)
        {

        }
    }
}
